aes 0.5.0

Facade for AES (Rijndael) block ciphers implementations
Documentation

RustCrypto: Advanced Encryption Standard (AES)

crate Docs Apache2/MIT licensed Rust Version Build Status HAZMAT

Pure Rust implementation of the Advanced Encryption Standard (AES).

This crate implements the low-level AES block function, and is intended for use for implementing higher-level constructions only. It is NOT intended for direct use in applications.

Documentation

Security

⚠️ Warning: Hazmat!

This crate does not ensure ciphertexts are authentic (i.e. by using a MAC to verify ciphertext integrity), which can lead to serious vulnerabilities if used incorrectly!

To avoid this, use an AEAD mode based on AES, such as AES-GCM or AES-GCM-SIV. See the RustCrypto/AEADs repository for more information.

USE AT YOUR OWN RISK!

Notes

This crate has received one security audit by NCC Group, with no significant findings. We would like to thank MobileCoin for funding the audit.

All implementations contained in the crate are designed to execute in constant time, either by relying on hardware intrinsics (i.e. AES-NI on x86/x86_64), or using a portable implementation based on bitslicing.

Minimum Supported Rust Version

Rust 1.41 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

SemVer Policy

  • All on-by-default features of this library are covered by SemVer
  • MSRV is considered exempt from SemVer as noted above

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.